package vsy.buzzwordbingo.model;

import java.util.List;

public interface GameCore {

	// ----- MANAGE PLAYERS -----

	public void loginPlayer(Player p) throws DuplicatePlayerException;
	
	public Player loginPlayer(String name, String password)
			throws DuplicatePlayerException, IllegalArgumentException;

	public void logoutPlayer(String playerName);

	public List<Player> getPlayers();

	public Player getPlayer(String playerName);

	// ----- MANAGE GAMES -----

	public Game createGame(String playerName, String title, int size,
			String description, List<String> words);

	public void destroyGame(String gameId);

	public List<Game> getGames();

	public Game getGame(String gameId);

	// ----- MANGE GAME/PLAYER MAPPINGS -----

	public GameBoard joinGame(String gameId, String playerName);

	public void leaveGame(String gameId, String playerName);

	public GameBoard getBoard(String gameId, String playerName);

	// ----- MANAGE BOARDS -----

	void markBuzzword(String gameId, String playerName, int x, int y,
			boolean marked);

	void poll(String gameId, String playerName);

}
